package org.hhchat.leetcode.array;
public class code125_easy {

    static class Solution {
        public boolean isPalindrome(String s) {
            if (s == null || s.length() == 0) {
                return true;
            }
            int p = 0, q = s.length() - 1;
            s=s.toLowerCase();
            while(p<=q){
                while(p<q && !(Character.isLetter(s.charAt(p))||Character.isDigit(s.charAt(p)))) {
                    p++;
                }
                while(p < q&&!(Character.isLetter(s.charAt(q))||Character.isDigit(s.charAt(q)))) q--;
                if(p==q){
                    return s.charAt(p)==s.charAt(q);
                }
                if(p>q || s.charAt(p)!=s.charAt(q)){
                    return false;
                }
                p++;
                q--;
            }
            return true;

        }
    }

    public static void main(String[] args){
        Solution solution = new Solution();
        System.out.println(solution.isPalindrome("0P"));
    }
}

//class Solution {
//    public boolean isPalindrome(String s) {
//        if(s.equals(""))
//            return true;
//        int length = s.length();
//        int j = 0;
//        int k = length-1;
//        while(j < k){
//            int a = s.charAt(j);
//            int b = s.charAt(k);
//            if((a<65||a>90)&&(a<97||a>122)&&(a<48||a>57)) {
//                j++;
//                continue;
//            }
//            if((b<65||b>90)&&(b<97||b>122)&&(b<48||b>57)) {
//                k--;
//                continue;
//            }
//            if(a!=b){
//                if(a>=65&&a<=90){
//
//                    return (a-'A')==(b-'a');
//                }
//                if(a>=97&&a<=122){
//
//                    return (a-'a')==(b-'A');
//                }
//                return false;
//            }
//            j++;
//            k--;
//        }
//        return true;
//    }
//}